/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilitario;

import CampoDeTexto.campo;
import cadastro.funcionario;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import utilitario.Arquivo;
import cadastro.funcionario;
import javax.swing.JTextField;

/**
 *
 * @author rodrig0x
 */
public class formEditaFuncionario extends javax.swing.JFrame {
    /*telaAnterior guardará a instacia da tela de cadastro de funcionarios pelos seguintes motivos
     * evitar que a tela de cadastro de funcionarios possa instaciar várias telas de editar funcionario
     * funções que estão após o instaciamento desta classe no cadastro de funcionarios esperem essa classe ser finalizada
     */

    private funcionario telaAnterior;

    /**
     * Creates new form formEditaFuncionario
     */
    /*construtor padrão*/
    private formEditaFuncionario() {
        initComponents();
        
        //limitando campos de texto
        txtcep.setDocument(new CampoDeTexto.apenasNumeros());
        txtcidade.setDocument(new CampoDeTexto.apenasMaiusculas());
        txtcpf.setDocument(new CampoDeTexto.apenasNumeros());
        txtid.setDocument(new CampoDeTexto.apenasNumeros());
        txtidentidade.setDocument(new CampoDeTexto.apenasNumeros());
        txtmae.setDocument(new CampoDeTexto.apenasMaiusculas());
        txtnome.setDocument(new CampoDeTexto.apenasMaiusculas());
        txtnumero.setDocument(new CampoDeTexto.apenasNumeros());
        txtsalario.setDocument(new CampoDeTexto.apenasNumerosPonto());
        
    }

    /*Construtor que receberá a instancia da tela anterior*/
    public formEditaFuncionario(funcionario telaCadastro) {
        //chamando construtor padráo
        this();

        //pegar instancia da tela anterior
        this.telaAnterior = telaCadastro;
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel1.setBackground(new java.awt.Color(0,0,0,0));
        lblnome = new javax.swing.JLabel();
        txtnome = new javax.swing.JTextField();
        txttelefone = new javax.swing.JTextField();
        lbltelefone = new javax.swing.JLabel();
        lblendereco = new javax.swing.JLabel();
        txtendereco = new javax.swing.JTextField();
        txtrua = new javax.swing.JTextField();
        lblrua = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        txtid = new javax.swing.JTextField();
        lblrs = new javax.swing.JLabel();
        lbllotacao = new javax.swing.JLabel();
        txtlotacao = new javax.swing.JTextField();
        cboxcargo = new javax.swing.JComboBox();
        lblcargo = new javax.swing.JLabel();
        cboxsexo = new javax.swing.JComboBox();
        txtidentidade = new javax.swing.JTextField();
        lblsexo = new javax.swing.JLabel();
        lblidentidade = new javax.swing.JLabel();
        lbllogin = new javax.swing.JLabel();
        txtlogin = new javax.swing.JTextField();
        txtsenha = new javax.swing.JPasswordField();
        lblsenha = new javax.swing.JLabel();
        txtconfirmasenha = new javax.swing.JPasswordField();
        lblconfirmasenha = new javax.swing.JLabel();
        txtnumero = new javax.swing.JTextField();
        lblnumero = new javax.swing.JLabel();
        txtbairro = new javax.swing.JTextField();
        lblbairro = new javax.swing.JLabel();
        txtcidade = new javax.swing.JTextField();
        lblcidade = new javax.swing.JLabel();
        txtcep = new javax.swing.JTextField();
        lblcep = new javax.swing.JLabel();
        lblcomplemento = new javax.swing.JLabel();
        txtcomplemento = new javax.swing.JTextField();
        txtmae = new javax.swing.JTextField();
        lblmae = new javax.swing.JLabel();
        lbladmissao = new javax.swing.JLabel();
        txtcpf = new javax.swing.JTextField();
        lblcpf = new javax.swing.JLabel();
        datadmissao = new com.toedter.calendar.JDateChooser();
        cboxestadoCivil = new javax.swing.JComboBox();
        lblestadoCivil = new javax.swing.JLabel();
        lblnascimento = new javax.swing.JLabel();
        datnascimento = new com.toedter.calendar.JDateChooser();
        lblid = new javax.swing.JLabel();
        lblsalario = new javax.swing.JLabel();
        txtsalario = new javax.swing.JTextField();
        btncancelar = new javax.swing.JButton();
        btnok = new javax.swing.JButton();
        lblFundo = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Editar Funcionario");
        setMinimumSize(new java.awt.Dimension(820, 630));
        setName("Editar"); // NOI18N
        setResizable(false);
        setType(java.awt.Window.Type.UTILITY);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });
        getContentPane().setLayout(null);

        jPanel1.setAutoscrolls(true);
        jPanel1.setOpaque(false);
        jPanel1.setLayout(null);

        lblnome.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblnome.setText("Nome:");
        jPanel1.add(lblnome);
        lblnome.setBounds(20, 10, 40, 14);

        txtnome.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtnome);
        txtnome.setBounds(20, 30, 180, 30);

        txttelefone.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txttelefone);
        txttelefone.setBounds(220, 30, 140, 30);

        lbltelefone.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lbltelefone.setText("Telefone:");
        jPanel1.add(lbltelefone);
        lbltelefone.setBounds(220, 10, 60, 14);

        lblendereco.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblendereco.setText("Endereço:");
        jPanel1.add(lblendereco);
        lblendereco.setBounds(380, 10, 60, 14);

        txtendereco.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtendereco);
        txtendereco.setBounds(380, 30, 200, 30);

        txtrua.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtrua);
        txtrua.setBounds(600, 30, 140, 30);

        lblrua.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblrua.setText("Rua:");
        jPanel1.add(lblrua);
        lblrua.setBounds(600, 10, 30, 14);

        jLabel8.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel8.setText("(apenas números)");
        jPanel1.add(jLabel8);
        jLabel8.setBounds(145, 285, 110, 14);

        txtid.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtid);
        txtid.setBounds(20, 270, 120, 30);

        lblrs.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblrs.setText("R$");
        jPanel1.add(lblrs);
        lblrs.setBounds(500, 220, 20, 14);

        lbllotacao.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lbllotacao.setText("Lotação:");
        jPanel1.add(lbllotacao);
        lbllotacao.setBounds(500, 250, 50, 14);

        txtlotacao.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtlotacao);
        txtlotacao.setBounds(500, 270, 190, 30);

        cboxcargo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        cboxcargo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Vendedor", "Caixa", "Comprador", "Recebedor", "Finnceiro" }));
        jPanel1.add(cboxcargo);
        cboxcargo.setBounds(380, 210, 100, 30);

        lblcargo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblcargo.setText("Cargo:");
        jPanel1.add(lblcargo);
        lblcargo.setBounds(380, 190, 40, 14);

        cboxsexo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        cboxsexo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Feminino", "Masculino" }));
        jPanel1.add(cboxsexo);
        cboxsexo.setBounds(140, 210, 100, 30);

        txtidentidade.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtidentidade);
        txtidentidade.setBounds(20, 210, 100, 30);

        lblsexo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblsexo.setText("Sexo:");
        jPanel1.add(lblsexo);
        lblsexo.setBounds(140, 190, 40, 14);

        lblidentidade.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblidentidade.setText("Identidade:");
        jPanel1.add(lblidentidade);
        lblidentidade.setBounds(20, 190, 65, 14);

        lbllogin.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lbllogin.setText("Login:");
        lbllogin.setMaximumSize(null);
        jPanel1.add(lbllogin);
        lbllogin.setBounds(20, 310, 40, 14);

        txtlogin.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtlogin);
        txtlogin.setBounds(20, 330, 180, 30);

        txtsenha.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtsenha);
        txtsenha.setBounds(220, 330, 180, 30);

        lblsenha.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblsenha.setText("Senha:");
        lblsenha.setMaximumSize(null);
        jPanel1.add(lblsenha);
        lblsenha.setBounds(220, 310, 40, 14);

        txtconfirmasenha.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtconfirmasenha);
        txtconfirmasenha.setBounds(420, 330, 180, 30);

        lblconfirmasenha.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblconfirmasenha.setText("Confirme a senha:");
        lblconfirmasenha.setMaximumSize(null);
        jPanel1.add(lblconfirmasenha);
        lblconfirmasenha.setBounds(420, 310, 110, 14);

        txtnumero.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtnumero);
        txtnumero.setBounds(20, 90, 180, 30);

        lblnumero.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblnumero.setText("Número:");
        jPanel1.add(lblnumero);
        lblnumero.setBounds(20, 70, 60, 14);

        txtbairro.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtbairro);
        txtbairro.setBounds(220, 90, 140, 30);

        lblbairro.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblbairro.setText("Bairro:");
        jPanel1.add(lblbairro);
        lblbairro.setBounds(220, 70, 40, 14);

        txtcidade.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtcidade);
        txtcidade.setBounds(380, 90, 200, 30);

        lblcidade.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblcidade.setText("Cidade:");
        jPanel1.add(lblcidade);
        lblcidade.setBounds(380, 70, 60, 14);

        txtcep.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtcep);
        txtcep.setBounds(600, 90, 140, 30);

        lblcep.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblcep.setText("CEP:");
        jPanel1.add(lblcep);
        lblcep.setBounds(600, 70, 30, 14);

        lblcomplemento.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblcomplemento.setText("Complemento:");
        jPanel1.add(lblcomplemento);
        lblcomplemento.setBounds(20, 130, 90, 14);

        txtcomplemento.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtcomplemento);
        txtcomplemento.setBounds(20, 150, 180, 30);

        txtmae.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtmae);
        txtmae.setBounds(220, 150, 140, 30);

        lblmae.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblmae.setText("Nome da Mãe:");
        jPanel1.add(lblmae);
        lblmae.setBounds(220, 130, 80, 14);

        lbladmissao.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lbladmissao.setText("Data de Admissão:");
        jPanel1.add(lbladmissao);
        lbladmissao.setBounds(280, 250, 110, 14);

        txtcpf.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtcpf);
        txtcpf.setBounds(600, 150, 140, 30);

        lblcpf.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblcpf.setText("CPF:");
        jPanel1.add(lblcpf);
        lblcpf.setBounds(600, 130, 30, 14);

        datadmissao.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
        jPanel1.add(datadmissao);
        datadmissao.setBounds(280, 270, 200, 30);

        cboxestadoCivil.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        cboxestadoCivil.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Solteiro", "Casado", "Divorciado", "Sep. Jud.", "Viúvo" }));
        jPanel1.add(cboxestadoCivil);
        cboxestadoCivil.setBounds(260, 210, 100, 30);

        lblestadoCivil.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblestadoCivil.setText("Estado Civil:");
        jPanel1.add(lblestadoCivil);
        lblestadoCivil.setBounds(260, 190, 80, 14);

        lblnascimento.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblnascimento.setText("Data de Nascimento:");
        jPanel1.add(lblnascimento);
        lblnascimento.setBounds(380, 130, 120, 14);

        datnascimento.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N
        jPanel1.add(datnascimento);
        datnascimento.setBounds(380, 150, 200, 30);

        lblid.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblid.setText("ID");
        jPanel1.add(lblid);
        lblid.setBounds(20, 250, 20, 14);

        lblsalario.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        lblsalario.setText("Salário:");
        jPanel1.add(lblsalario);
        lblsalario.setBounds(520, 190, 50, 14);

        txtsalario.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jPanel1.add(txtsalario);
        txtsalario.setBounds(520, 210, 190, 30);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(20, 160, 760, 360);

        btncancelar.setText("Cancelar");
        btncancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btncancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btncancelar);
        btncancelar.setBounds(180, 540, 100, 30);

        btnok.setText("OK");
        btnok.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnokActionPerformed(evt);
            }
        });
        getContentPane().add(btnok);
        btnok.setBounds(60, 540, 100, 30);

        lblFundo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/fundo_fornecedor.png"))); // NOI18N
        getContentPane().add(lblFundo);
        lblFundo.setBounds(0, 0, 800, 600);

        pack();
        setLocationRelativeTo(null);
    }// </editor-fold>//GEN-END:initComponents

    private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
        //pegando as informações do funcionario que será editado
        txtnome.setText(funcEditar.getNome());
        txttelefone.setText(funcEditar.getTelefone());
        txtendereco.setText(funcEditar.getEndereco());
        txtcpf.setText(funcEditar.getCpf());
        txtidentidade.setText(funcEditar.getIdentidade());
        txtsalario.setText(funcEditar.getSalario() + "");
        txtid.setText(funcEditar.getId() + "");
        txtlogin.setText(funcEditar.getLogin());
        txtsenha.setText(funcEditar.getSenha());
        txtconfirmasenha.setText(funcEditar.getSenha());
        txtmae.setText(funcEditar.getNome_da_mae());
        txtrua.setText(funcEditar.getRua());
        txtbairro.setText(funcEditar.getBairro());
        txtcidade.setText(funcEditar.getCidade());
        txtcomplemento.setText(funcEditar.getComplemento());
        txtlotacao.setText(funcEditar.getLotacao());
        txtnumero.setText(funcEditar.getNumero());
        txtcep.setText(funcEditar.getCep());
        datnascimento.setCalendar(funcEditar.getNascimento());
        datadmissao.setCalendar(funcEditar.getAdmicao());
        cboxcargo.setSelectedIndex(funcEditar.getNivel_de_acesso());
        //pegando o estado civil
        switch (funcEditar.getEstado_civil()) {
            case "Solteiro": {
                cboxestadoCivil.setSelectedIndex(0);
                break;
            }
            case "Casado": {
                cboxestadoCivil.setSelectedIndex(1);
                break;
            }
            case "Divorciado": {
                cboxestadoCivil.setSelectedIndex(2);
                break;
            }
            case "Separado Judicialmente": {
                cboxestadoCivil.setSelectedIndex(3);
                break;
            }
            case "Viúvo": {
                cboxestadoCivil.setSelectedIndex(4);
                break;
            }
        }

        //pegando o genero
        if (funcEditar.getSexo().equals("Feminino")) {
            cboxsexo.setSelectedIndex(0);
        } else {
            cboxsexo.setSelectedIndex(1);
        }


    }//GEN-LAST:event_formWindowOpened

    private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
        telaAnterior.setEnabled(true);
    }//GEN-LAST:event_formWindowClosed

    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
        this.setVisible(false);        // TODO add your handling code here:
    }//GEN-LAST:event_formWindowClosing

    private ArrayList<JTextField> criaListaDeTexto() {
        ArrayList<JTextField> campos = new ArrayList<>();
        //adicionando campos a lista
        campos.add(this.txtbairro);
        campos.add(this.txtcep);
        campos.add(this.txtcidade);
        campos.add(this.txtcomplemento);
        campos.add(this.txtconfirmasenha);
        campos.add(this.txtcpf);
        campos.add(this.txtendereco);
        campos.add(this.txtid);
        campos.add(this.txtidentidade);
        campos.add(this.txtlogin);
        campos.add(this.txtlotacao);
        campos.add(this.txtmae);
        campos.add(this.txtnome);
        campos.add(this.txtnumero);
        campos.add(this.txtrua);
        campos.add(this.txtsalario);
        campos.add(this.txtsenha);
        campos.add(this.txttelefone);


        return campos;
    }

    private void btnokActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnokActionPerformed
        switch (JOptionPane.showConfirmDialog(null, "Deseja salvar as alterações realizadas?\n", "Salvar", JOptionPane.INFORMATION_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION)) {
            case 0: {
                //verificando cpf
                if (!cpf.verificar(txtcpf.getText())) {
                    JOptionPane.showMessageDialog(rootPane, "CPF informado é invalido");
                    return;
                }


                if (!campo.isNull(this.criaListaDeTexto())) {
                    Funcionario funcionario = new Funcionario();
                    funcionario.setNome(txtnome.getText());
                    funcionario.setTelefone(txttelefone.getText());
                    funcionario.setEndereco(txtendereco.getText());
                    funcionario.setCpf(txtcpf.getText());
                    funcionario.setIdentidade(txtidentidade.getText());
                    funcionario.setLogin(txtlogin.getText());
                    funcionario.setRua(txtrua.getText());
                    funcionario.setCep(txtcep.getText());
                    funcionario.setNumero(txtnumero.getText());
                    funcionario.setBairro(txtbairro.getText());
                    funcionario.setNascimento(datnascimento.getCalendar());
                    funcionario.setAdmicao(datadmissao.getCalendar());
                    funcionario.setComplemento(txtcomplemento.getText());
                    funcionario.setCidade(txtcidade.getText());
                    funcionario.setNome_da_mae(txtmae.getText());
                    funcionario.setLotacao(txtlotacao.getText());
                    funcionario.setNivel_de_acesso(cboxcargo.getSelectedIndex());

                    //pegando o cargo do funcionario
                    switch (cboxcargo.getSelectedIndex()) {
                        case 0: {
                            funcionario.setCargo("Vendedor");
                            break;
                        }
                        case 1: {
                            funcionario.setCargo("Caixa");
                            break;
                        }
                        case 2: {
                            funcionario.setCargo("Comprador");
                            break;
                        }
                        case 3: {
                            funcionario.setCargo("Recebedor");
                            break;
                        }
                        case 4: {
                            funcionario.setCargo("Financeiro");
                            break;
                        }
                    }
                    //pegando sexo escolhido
                    switch (cboxsexo.getSelectedIndex()) {
                        case 0: {
                            funcionario.setSexo("Feminino");
                            break;
                        }
                        case 1: {
                            funcionario.setSexo("Masculino");
                            break;
                        }
                    }
                    //pegando o estado civil escolhido
                    switch (cboxestadoCivil.getSelectedIndex()) {
                        case 0: {
                            funcionario.setEstado_civil("Solteiro");
                            break;
                        }
                        case 1: {
                            funcionario.setEstado_civil("Casado");
                            break;
                        }
                        case 2: {
                            funcionario.setEstado_civil("Divorciado");
                            break;
                        }
                        case 3: {
                            funcionario.setEstado_civil("Separado Judicialmente");
                            break;
                        }
                        case 4: {
                            funcionario.setEstado_civil("Viúvo");
                            break;
                        }
                    }


                    if (txtsenha.getText().equals(txtconfirmasenha.getText())) {
                        funcionario.setSalario(Double.parseDouble(txtlotacao.getText()));
                        funcionario.setId(Integer.parseInt(txtid.getText()));
                        funcionario.setSenha(txtsenha.getText());
                        System.out.println("Passou");
                        if (Funcionario.isCadastravel(lista, funcionario)) {
                            lista.add(pos, funcionario);
                            Arquivo.armazenarFuncionarioTemporariamente(lista);
                            telaAnterior.setEnabled(true);
                            this.setVisible(false);
                            this.dispose();
                        } else {
                            JOptionPane.showMessageDialog(this, "Existem informações incorretas");
                        }

                    } else {
                        JOptionPane.showMessageDialog(null, "Existem informações incorretas!");
                    }
                }
                break;
            }
            case 1: {
                telaAnterior.setEnabled(true);
                this.setVisible(false);
                this.dispose();
                break;
            }
        }
    }//GEN-LAST:event_btnokActionPerformed

    private void btncancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btncancelarActionPerformed
        telaAnterior.setEnabled(true);
        this.setVisible(false);
        this.dispose();
    }//GEN-LAST:event_btncancelarActionPerformed

    /**
     * @param args the command line arguments
     */
    //pega lista de funcionarios, funcionario a ser editado e a posição na lista
    public void getEditFuncionario(ArrayList<Funcionario> l, Funcionario func, int posicao) {
        lista = l;
        funcEditar = func;
        pos = posicao;

        //guardando a lista de funcionarios em um arquivo temporario
        Arquivo.armazenarFuncionarioTemporariamente(lista);

        /*removendo funcionario da lista para poder ser recadastrado*/
        lista.remove(pos);
    }

    public void confirmarInformacoes() {
        if ((funcEditar.getNome().equals("") == false) && (funcEditar.getTelefone().equals("") == false) && (funcEditar.getEndereco().equals("") == false)
                && (funcEditar.getCpf().equals("") == false) && (funcEditar.getIdentidade().equals("") == false)
                && (funcEditar.getLogin().equals("") == false) && (Funcionario.loginExistente(lista, funcEditar.getLogin()) == false)) {
            JOptionPane.showMessageDialog(null, "Tudo certo");
        }
    }

    public static void main(String[] args) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(formEditaFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(formEditaFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(formEditaFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(formEditaFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new formEditaFuncionario().setVisible(true);
            }
        });

    }
    //variaveis globais para a manipulação dos dados
    public static ArrayList<Funcionario> lista = new ArrayList<>();
    public static Funcionario funcEditar;
    public static int pos;
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btncancelar;
    private javax.swing.JButton btnok;
    private javax.swing.JComboBox cboxcargo;
    private javax.swing.JComboBox cboxestadoCivil;
    private javax.swing.JComboBox cboxsexo;
    private com.toedter.calendar.JDateChooser datadmissao;
    private com.toedter.calendar.JDateChooser datnascimento;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JLabel lblFundo;
    private javax.swing.JLabel lbladmissao;
    private javax.swing.JLabel lblbairro;
    private javax.swing.JLabel lblcargo;
    private javax.swing.JLabel lblcep;
    private javax.swing.JLabel lblcidade;
    private javax.swing.JLabel lblcomplemento;
    private javax.swing.JLabel lblconfirmasenha;
    private javax.swing.JLabel lblcpf;
    private javax.swing.JLabel lblendereco;
    private javax.swing.JLabel lblestadoCivil;
    private javax.swing.JLabel lblid;
    private javax.swing.JLabel lblidentidade;
    private javax.swing.JLabel lbllogin;
    private javax.swing.JLabel lbllotacao;
    private javax.swing.JLabel lblmae;
    private javax.swing.JLabel lblnascimento;
    private javax.swing.JLabel lblnome;
    private javax.swing.JLabel lblnumero;
    private javax.swing.JLabel lblrs;
    private javax.swing.JLabel lblrua;
    private javax.swing.JLabel lblsalario;
    private javax.swing.JLabel lblsenha;
    private javax.swing.JLabel lblsexo;
    private javax.swing.JLabel lbltelefone;
    private javax.swing.JTextField txtbairro;
    private javax.swing.JTextField txtcep;
    private javax.swing.JTextField txtcidade;
    private javax.swing.JTextField txtcomplemento;
    private javax.swing.JPasswordField txtconfirmasenha;
    private javax.swing.JTextField txtcpf;
    private javax.swing.JTextField txtendereco;
    private javax.swing.JTextField txtid;
    private javax.swing.JTextField txtidentidade;
    private javax.swing.JTextField txtlogin;
    private javax.swing.JTextField txtlotacao;
    private javax.swing.JTextField txtmae;
    private javax.swing.JTextField txtnome;
    private javax.swing.JTextField txtnumero;
    private javax.swing.JTextField txtrua;
    private javax.swing.JTextField txtsalario;
    private javax.swing.JPasswordField txtsenha;
    private javax.swing.JTextField txttelefone;
    // End of variables declaration//GEN-END:variables
}
